#pragma once

#include "vgengine.h"
#include "vgerhi.h"
#include <memory>

// 前向声明
class VDX12RHI;
class IVMesh;

/**
 * VGameEngine - 游戏引擎功能层实现类
 * 继承VGEngine接口，实现具体的引擎功能
 */
class VGameEngine : public VGEngine
{
    Q_OBJECT

public:
    explicit VGameEngine(QObject *parent = nullptr);
    ~VGameEngine() override;

    // VGEngine接口实现
    bool PreInit() override;
    bool Init() override;
    void Start() override;
    void Tick() override;
    void PreExit() override;

    // 静态访问接口
    static VGameEngine* Get();

private:
    static VGameEngine* s_Instance;
};
